# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import Group
from konto.models import userModel

class StronaManager(models.Manager):
    def strona_glowna(self):
        try:
            return self.objects.all()[0]
        except:
            return None

class Strona(models.Model):
    """ Projekt """
    tytul_url = models.CharField(u"Tytuł strony", max_length=40, unique=True)
    aktualna_wersja = models.ForeignKey('WersjaStrony', verbose_name=u"Aktualna wersja", related_name="aktualna_wersja", null=True)
    data_utworzenia = models.DateField(u"Data utworzenia", auto_now_add=True)
    zalozyciel = models.ForeignKey(userModel, verbose_name=u"Założyciel strony", related_name="zalozyciel_strony")
    grupy = models.ManyToManyField(Group, null=True)

    objects = StronaManager()

    def tytul(self):
        return self.tytul_url.replace(u'_', u' ')
    
    def __unicode__(self):
        return u'%s' % self.tytul

    @models.permalink
    def get_absolute_url(self):
        return [ 'wiki.views.edytuj_strone', {'tytul': self.title}]

    class Meta:
        verbose_name = u"Strona wiki"
        verbose_name_plural = u"Strony wiki"
        ordering = ['-data_utworzenia']

class WersjaStrony(models.Model):
    strona = models.ForeignKey('Strona')
    numer_wersji = models.IntegerField(verbose_name=u"Numer wersji", default=1)
    tresc = models.TextField(verbose_name=u"Treść")
    autor = models.ForeignKey(userModel, verbose_name=u"Autor wersji strony", related_name="autor_strony")
    data_utworzenia = models.DateField(u"Data utworzenia", auto_now_add=True)
    komentarz = models.CharField(verbose_name=u"Komentarz", max_length="250")

    def __unicode__(self):
        return '%s (wersja: %d)' % (self.strona.tytul(), self.numer_wersji)

    def save(self, *args, **kwargs):
        try:
            ostatnia_wersja = WersjaStrony.objects.filter(strona=self.strona).order_by('-numer_wersji')[0]
            self.numer_wersji = ostatnia_wersja.numer_wersji + 1
        except:
            self.numer_wersji = 1
        super(WersjaStrony, self).save()

    class Meta:
        verbose_name = u"Wersja strony wiki"
        verbose_name_plural = u"Wersje strony wiki"
        ordering = ['-data_utworzenia']
	
    
